import accessEnum from "@/access/accessEnum";

/**
 * 检查用户权限（判断是否有权限访问页面）
 * @param loginUser(当前登录用户)
 * @param needAccess(需要的权限)
 * @returns {boolean}
 */
// 设置默认需要的权限(如果不存在则设置为未登录)
const checkUserAccess = (loginUser: any, needAccess = accessEnum.NoLogin) => {
  // 设置默认权限(如果不存在则设置为未登录)
  const loginUserAccess = loginUser?.userRole ?? accessEnum.NoLogin;
  // 如果当前登录用户权限与需要的权限一致，则返回true
  if (needAccess === loginUserAccess) {
    return true;
  }
  // 需要的权限是用户权限，则需要判断当前是否登录
  if (needAccess === accessEnum.User) {
    // 如果当前登录用户没有登录就返回false
    if (loginUserAccess === accessEnum.NoLogin) {
      return false;
    }
  }
  // 如果需要的权限是管理员权限，则需要判断当前登录用户是否是管理员
  if (needAccess === accessEnum.Admin) {
    // 如果当前登录的用户不是管理员就返回false
    if (loginUserAccess !== accessEnum.Admin) {
      return false;
    }
  }
  return true;
};
export default checkUserAccess;
